/**
 * 买卖股票的最好时机(二)
 *
 * 描述
 * 假设你有一个数组prices，长度为n，其中prices[i]是某只股票在第i天的价格，请根据这个价格数组，返回买卖股票能获得的最大收益
 * 1. 你可以多次买卖该只股票，但是再次购买前必须卖出之前的股票
 * 2. 如果不能获取收益，请返回0
 * 3. 假设买入卖出均无手续费
 *
 * 数据范围：
 * 0≤n≤1×10^5
 * 1≤prices[i]≤10^4
 *
 * 要求：
 * 空间复杂度 O(n)，
 * 时间复杂度 O(n)
 *
 * 进阶：
 * 空间复杂度 O(1)，
 * 时间复杂度 O(n)
 *
 * 输入描述：
 * 第一行输入一个正整数 n ，表示数组 prices 的长度
 * 第二行输入 n 个正整数，表示数组中prices的值
 *
 * 输出描述：
 * 输出最大收益
 */

import java.util.Scanner;

/**
 * 贪心, 我们发现要是 8, 9, 10, 我们 8 买入, 然后你可以选择 9 和 10 卖出, 但是
 * 10 卖出的利润肯定最多, 但是我们看相邻两个的差值也是可以达到 8 买入 10 卖出的效果的
 * 要是 8 4 10 这种情况肯定是 4 买入 10 卖出利润更多了, 所以只要相邻的两天有利润我们
 * 就加上
 * 时间复杂度 : O(n)
 * 空间复杂度 : O(1)
 */

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int n = in.nextInt();
        int[] prices = new int[n];

        for (int i = 0; i < n; i++) {
            prices[i] = in.nextInt();
        }

        int ret = 0;
        for (int i = 1; i < n; i++) {

            // 有利润就加上
            if (prices[i] > prices[i - 1]) {
                ret += prices[i] - prices[i - 1];
            }
        }

        System.out.println(ret);
    }
}